﻿using Kavaa.Core.Data;
using Kavaa.Modules.PortailMedical.Entity;
using Kavaa.Modules.PortailMedical.Datalayer;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace Kavaa.Modules.PortailMedical.Datalayer
{
    internal static class UtilisateurDAO
    {
        #region Cliniques
        public static Utilisateurs GetUtilisateurs(int ActeurId)
        {


            Utilisateurs utilisateurs = new Utilisateurs();


            foreach (var row in SqlDaoAdapter.ExecuteReader(
                ConfigurationCache.DatabaseConnectionString,
                "[dbo].[sp_PortailMedical_GetUtilisateursByCabinet]"
            , new List<SqlParameter>() { 
                new SqlParameter("@ActeurId", ActeurId),
               
            }))
            {
                utilisateurs.Add(new Utilisateur()
                {
                    Id = (row["Id"] != DBNull.Value) ? Convert.ToInt32(row["Id"]) : 0,
                    Name = (row["name"] != DBNull.Value) ? Convert.ToString(row["name"]) : null,
                    login = (row["login"] != DBNull.Value) ? Convert.ToString(row["login"]) : null,
                    motPasse = (row["motPasse"] != DBNull.Value) ? Convert.ToString(row["motPasse"]) : null,
                    Prenom = (row["prenom"] != DBNull.Value) ? Convert.ToString(row["prenom"]) : null,
                    Fonction = (row["fonction"] != DBNull.Value) ? Convert.ToString(row["fonction"]) : null,
                    Telephone = (row["tel"] != DBNull.Value) ? Convert.ToString(row["tel"]) : null,
                    Email = (row["email"] != DBNull.Value) ? Convert.ToString(row["email"]) : null,
                    Etatcompte = (row["Etatcompte"] != DBNull.Value) ? Convert.ToInt32(row["Etatcompte"]) : 0,

                });
            }



            return utilisateurs;
        }
        #endregion     

        public static int AddUtilisateur(Utilisateur user, int IdActeurConnecte)
        {
            int ID = 0;
            foreach (var row in

            SqlDaoAdapter.ExecuteReader(ConfigurationCache.DatabaseConnectionString,
                "[dbo].[sp_PortailMedical_AddUtilisateur]"
            , new List<SqlParameter>() { 
                new SqlParameter("@ActeurConnecte", IdActeurConnecte),
                new SqlParameter("@UserName", user.Name),
                new SqlParameter("@UserPrenom", user.Prenom),
                new SqlParameter("@UserTelephone", user.Telephone),
                new SqlParameter("@UserEmail", user.Email),
                new SqlParameter("@UserFonction", user.Fonction)
               
            }))
            { ID = (row["ID"] != DBNull.Value) ? Convert.ToInt32(row["ID"]) : 0; }

            return ID;

        }
        public static Utilisateur GetUserById(int IdUser)
        {
            Utilisateurs utilisateurs = new Utilisateurs();
            foreach (var row in SqlDaoAdapter.ExecuteReader(
              ConfigurationCache.DatabaseConnectionString,
              "[dbo].[sp_PortailMedical_GetUserById]"
          , new List<SqlParameter>() { 
                new SqlParameter("@IdUser", IdUser),
               
            }))
            {
                utilisateurs.Add(new Utilisateur
                {
                    login = (row["login"] != DBNull.Value) ? Convert.ToString(row["login"]) : null,
                    motPasse = (row["motPasse"] != DBNull.Value) ? Convert.ToString(row["motPasse"]) : null,
                    Email = (row["Email"] != DBNull.Value) ? Convert.ToString(row["Email"]) : null,

                });
            }
            if (utilisateurs.Count != 0)
            {
                return utilisateurs.ElementAt(0);
            }
            else return new Utilisateur();
        }
        public static void DeleteUtilisateur(int UserId) 
        {

            SqlDaoAdapter.ExecuteNonQuery(ConfigurationCache.DatabaseConnectionString,
                "[dbo].[sp_PortailMedical_Deletetilisateur]"
            , new List<SqlParameter>() { 
                new SqlParameter("@UserID", UserId),
            });

        }
        public static void UpdateUtilisateur(int Iduser,string Name,string Prenom,string Fonction,string Tel,string Email)  
        {

            SqlDaoAdapter.ExecuteNonQuery(ConfigurationCache.DatabaseConnectionString,
                "[dbo].[sp_PortailMedical_UpdateUtilisateur]"
            , new List<SqlParameter>() { 
                new SqlParameter("@UserId", Iduser),
                new SqlParameter("@UserName", Name),
                new SqlParameter("@UserPrenom",Prenom),
                new SqlParameter("@UserTelephone",Tel),
                new SqlParameter("@UserEmail", Email),
                new SqlParameter("@UserFonction", Fonction)
               
            });

        }
        public static void DesactiverCompte(int Iduser)
        {

            SqlDaoAdapter.ExecuteNonQuery(ConfigurationCache.DatabaseConnectionString,
                "[dbo].[sp_PortailMedical_DesactiverCompte]"
            , new List<SqlParameter>() { 
                new SqlParameter("@UserId", Iduser)
               
            });
        }

        public static void ActiverCompte(int Iduser)
        {

            SqlDaoAdapter.ExecuteNonQuery(ConfigurationCache.DatabaseConnectionString,
                "[dbo].[sp_PortailMedical_ActiverCompte]"
            , new List<SqlParameter>() { 
                new SqlParameter("@UserId", Iduser)
               
            });
        }
    }
}
